/**
 * @file extraConvert.h
 * @author your name (you@domain.com)
 * @brief
 * @version 0.1
 * @date 2025-07-03
 *
 * @copyright Copyright (c) 2025
 *
 */
#ifndef EXTRA_CONVERT_H

#define EXTRA_CONVERT_H
#include "xmzTypeDefine.h"
#include <stdint.h>
#include <stdbool.h>



/* 支持的转换类型 */
typedef enum
{
    T_TYPE_SINT,         // SInt  int8_t
    T_TYPE_INT,          // Int   int16_t
    T_TYPE_DINT,         // DInt  int32_t
    T_TYPE_USINT,        // USInt uint8_t
    T_TYPE_UINT,         // UInt  uint16_t
    T_TYPE_UDINT,        // UDInt uint32_t
    T_TYPE_LINT,         // LInt  int64_t
    T_TYPE_ULINT,        // ULInt uint64_t

    T_TYPE_TIME,         // Time (ms)
    T_TYPE_LTIME,        // LTime (ms, 64bit)
    T_TYPE_DATE,         // Date (天数)
    T_TYPE_TOD,          // TimeOfDay (一天毫秒)
    T_TYPE_LTOD          // LTimeOfDay (一天毫秒, 64bit)
} TConvType;

/**
 * @brief 模拟西门子博图 T_CONV 指令（带使能）
 *
 * @param enable   使能输入，为 false 时直接返回 false
 * @param inValue  输入指针
 * @param inType   输入类型
 * @param outValue 输出指针
 * @param outType  输出类型
 * @return Bool    true=转换成功，false=未执行或错误
 */
Bool T_CONV(Bool enable, const void *inValue, TConvType inType, void *outValue, TConvType outType);



#endif
